<?php
/**
 * 【订单】删除接口
 * @author webopenfather
 */

// 导入公共库文件
include '../../util/function.php';
include '../../util/db.php';
include '../../util/token.php'; // 这个文件中声明了$userId

// 1. 接受数据（无）

// 2. 操作数据库
    // 逻辑
    // 1. 根据用户ID查询所有购物车改用户商品
    // 2. 遍历
    // 3. 在【遍历】中 1-挨个插入订单明细表（略），2-统计总价格
    // 4. 插入订单主表
    // TODO.
    // 5. 清空购物车表数据（略）   防止数据清空了  有同学找不到 以为自己代码写错了！！！

    // 其他
    // order_sn  订单号  20个字符（必须唯一）
    // user_id
    // goods_amount 商品总金额
    // order_amount 应付金额

    // 1. 根据用户ID查询所有购物车改用户商品
    $pdoStatement = $pdo->query("select * from ecs_cart where user_id = {$userId}");
    $datas = $pdoStatement->fetchAll(PDO::FETCH_ASSOC);
    if (!$datas) response(400, '购物车没有商品！！');

    // 2. 遍历
    // 3. 在【遍历】中 1-挨个插入订单明细表（略），2-统计总价格
    $totalPrice = 0;
    $orderSn = 'QF'.date('YmdHis').mt_rand(1000,9999);
    foreach($datas as $data) {
        // 1-挨个插入订单明细表（略），
        // 2-统计总价格
        $totalPrice += $data['goods_price'];
    }
    // 4. 插入订单主表
    $rs = $pdo->exec("insert into ecs_order_info 
    (order_sn, user_id, goods_amount, order_amount)
    values
    ('{$orderSn}', {$userId}, '{$totalPrice}', '{$totalPrice}')");

    

// 3. 响应结果
if ($rs) {
    $pdoStatement = $pdo->query("select * from ecs_order_info where user_id = {$userId} order by order_id desc limit 1");
    $data = $pdoStatement->fetch(PDO::FETCH_ASSOC);
    
    response(201, '操作成功', [
        'order_sn' => $data['order_sn']
    ]);
} else {
    response(500, '操作失败');
}

